
#region Using Statements

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Content;
    using Microsoft.Xna.Framework.Graphics;

#endregion

namespace HumanElement.Xna.Construct
{
    using TRead = HumanElement.Xna.Construct.Surface;

    /// <summary>
    /// This class will be instantiated by the XNA Framework Content
    /// Pipeline to read the specified data type from binary .xnb format.
    /// 
    /// Unlike the other Content Pipeline support classes, this should
    /// be a part of your main game project, and not the Content Pipeline
    /// Extension Library project.
    /// </summary>
    public class SurfaceReader : ContentTypeReader<TRead>
    {
        /// <summary>
        /// Reads a strongly typed object from the current stream.
        /// </summary>
        /// <param name="input">The ContentReader used to read the object.</param>
        /// <param name="existingInstance">An existing object to read into.</param>
        /// <returns>The type of object to read.</returns>
        protected override TRead Read(ContentReader input, TRead existingInstance)
        {
            TRead res = existingInstance ?? default(TRead);
            
            // TODO: Add Surface hydration code here...


            return res;
        }
    }
}
